/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.imptec.reportfly.dao;

import com.imptec.reportfly.model.Cliente;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;


/**
 *
 * @author POTENTE
 */
public class ClienteDaoImpl  implements ClienteDao  {

  
    public ArrayList obtenerLista(Connection con) {
        
        ArrayList lista=new ArrayList();
        try {
           
            String sql="SELECT TRIM(C.APELLIDO),B.CLIENTE,D.NRO_CUI FROM RTL_CUENTA A, RTL_CLIENTE B, "
                    + "PER_PERSONA C, rtl_cliente_gfiscal D WHERE  B.id_persona=C.persona  AND A.cuenta = "
                    + "B.cliente AND B.habilitado='S' AND B.cliente = d.cliente AND APELLIDO!='Contado' AND APELLIDO!='Interno' AND APELLIDO NOT LIKE'-%'"
                    + "AND CUENTA!='1' and APELLIDO!='Cuenta Corriente'  ORDER BY TRIM(C.APELLIDO) ";
             PreparedStatement ps=con.prepareStatement(sql);
             //ejecutar el query y capturar el resultado en un resulset
             //sustituir signo inetrrogacion
             ResultSet rs=ps.executeQuery();
             //recorrer el rs y recuperar los datos de respuesta
             
             while(rs.next()){
                 Cliente bean=new Cliente();
                 bean.setCodigo(rs.getString(2));
                 bean.setNombre(rs.getString(1));
                 bean.setRuc(rs.getString(3));
                 //agregar a la lista
                 lista.add(bean);
             }
             
        } catch (SQLException ex) {
            Logger.getLogger(ClienteDaoImpl.class.getName()).log(Level.SEVERE, null, ex);
        }
        return lista;
        
    }

   
    public Cliente obtenerCliente(Connection con, String nombre) {
        
        Cliente bean=null;
        try {
            String sql="select A.APELLIDO, B.CLIENTE FROM per_persona A, rtl_cliente B WHERE A.persona = B.id_persona AND B.cliente !='1' AND A.APELLIDO=?";
            PreparedStatement ps=con.prepareStatement(sql);
            //ejecutar el query y capturar el resultado en un resulset
            ps.setString(1, nombre);
            ResultSet rs=ps.executeQuery();
            //recorrer el rs y recuperar los datos de respuesta
            
            if(rs.next())
            {
                bean=new Cliente();
                bean.setCodigo(rs.getString(2));
                System.out.println("Cliente Recuperado...");
            }
            
        } catch (SQLException ex) {
            Logger.getLogger(ClienteDaoImpl.class.getName()).log(Level.SEVERE, null, ex);
        }
        return bean;
    }


    public ArrayList obtenerListaCredito(Connection con) {
        ArrayList lista=new ArrayList();
        try {
           
            String sql="select DISTINCT(TRIM(A.APELLIDO)), C.CUENTA FROM per_persona A, "
                    + "rtl_cliente B, rtl_cuenta C WHERE A.persona = B.id_persona and B.cliente=C.cuenta and "
                    + "C.prepago = 'N' and C.ctacontado='N' AND B.cliente !='1' and A.apellido !='Contado' and "
                    + "A.apellido !='Cuenta Corriente' AND A.APELLIDO NOT LIKE'-%'";
             PreparedStatement ps=con.prepareStatement(sql);
             //ejecutar el query y capturar el resultado en un resulset
             //sustituir signo inetrrogacion
             ResultSet rs=ps.executeQuery();
             //recorrer el rs y recuperar los datos de respuesta
             
             while(rs.next()){
                 Cliente bean=new Cliente();
                 bean.setCodigo(rs.getString(2));
                 bean.setNombre(rs.getString(1));
                 //agregar a la lista
                 lista.add(bean);
             }
             
        } catch (SQLException ex) {
            Logger.getLogger(ClienteDaoImpl.class.getName()).log(Level.SEVERE, null, ex);
        }
        return lista;
        
    }
    
}
